/**
 * 学习接口
 */
(function () {
  /**
   *  描述一个对象的类型
   */
  type myType = {
    name: String,
    age: Number,
  }
  /**
   * 接口用来定义一个对象的类型
   * 用来定义一个类,
   * 其中应该包含啥属性和方法
   */
  interface myInterface {
    name: String,
    age: number,
    sayHello():void;
  }
  /**
   * 用接口来定义一个类结构
   * 声明类的时候,同名类只能一个
   * 但声明可以同名出现,
   * 如果出现接口同名,就大家一起用
   * 接口中的所有属性,都不能有实际的值
   * 接口只能定义对象的接口,不考虑实际的值(有点像抽象类,但是抽象类可以实现方法)
   */
  /**
   * 对接接口使用implement 关键字
   */
  class myInterFace implements myInterface {
    name: String;
    age: number;
    constructor(name: String, age: number) {
      this.name = name;
      this.age = age;
    }
    sayHello(){
      console.log("你好呀")
    }
  }
  const my = new myInterFace('Rosingsun',23)
  console.log("my",my)
  my.sayHello();
})();